home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / macos / cpu68000.cpt.hqx / CPU68000 / config.h next >
Text File  |  1997-07-04  |  8KB  |  188 lines

  1.  /* 
  2.   * UAE - The Un*x Amiga Emulator
  3.   * 
  4.   * User configuration options
  5.   *
  6.   * Copyright 1995, 1996 Bernd Schmidt
  7.   */
  8.  
  9. /*
  10.  * Please note: Many things are configurable with command line parameters,
  11.  * and you can put anything you can pass on the command line into a 
  12.  * configuration file ~/.uaerc. Please read the documentation for more
  13.  * information.
  14.  * 
  15.  * NOTE NOTE NOTE
  16.  * Whenever you change something in this file, you have to "make clean"
  17.  * afterwards.
  18.  * Don't remove the '#' signs. If you want to enable something, move it out
  19.  * of the C comment block, if you want to disable something, move it inside
  20.  * the block.
  21.  */
  22.  
  23. /*
  24.  * Note to porters:
  25.  * In an ideal world, all users can compile their own versions of UAE and
  26.  * select the options they need. Since hardly anyone has a C compiler for
  27.  * DOS, Windows or Macs, that's not possible. If you want to do your users
  28.  * a favour, please distribute three different versions of UAE:
  29.  *
  30.  * 1. A fast one: no sound compiled in, NO_EXCEPTION_3 and NO_PREFETCH_BUFFER
  31.  * 2. A slightly slower one: as above, but with sound compiled in
  32.  * 3. A dog slow but compatible one: sound, exception 3 and prefetch emulated.
  33.  *
  34.  * None of these should be a "default" version, since all of these have
  35.  * different problems.
  36.  *
  37.  * I know it's a pain, but it's your own fault if you don't use a real OS
  38.  * that comes with a C compiler ;)
  39.  * If you really can't be bothered, omit version 1, but please do distribute
  40.  * versions 2 and 3.
  41.  * 
  42.  * M68K_SPEED should be set to 4 in all binary versions that are distributed.
  43.  */
  44.  
  45. #define USE_EXECLIB
  46.  
  47. /*
  48.  * CPU level: 0 = 68000, 1 = 68010, 2 = 68020, 3 = 68020/68881
  49.  * If configured for 68020, the emulator will be a little slower.
  50.  */
  51. #define CPU_LEVEL 0 
  52.  
  53. /*
  54.  * When these two are enabled, a subset of the ECS features is emulated.
  55.  * Actually, it's only the chip identification and big blits. This may be
  56.  * enough to persuade some ECS programs to run.
  57.  * DON'T enable SuperHires or Productivity modes. They are not emulated,
  58.  * and will look very messy. NTSC doesn't work either.
  59.  * OS versions 2.0+ don't like ECS_DENISE at the moment.
  60. */
  61. #define ECS_DENISE
  62. #define ECS_AGNUS
  63.  
  64. /*
  65.  * If you don't have any sound hardware, or if you don't want to use it, then
  66.  * this option may make the emulator a little faster. I don't really know
  67.  * whether it's worthwhile, so if you have any results with this one, tell
  68.  * me about it.
  69.  * This will be overridden if you pass "--enable-sound" to configure.
  70.  */
  71. //#define DONT_WANT_SOUND
  72.  
  73. /*
  74.  * With this parameter, you can tune the CPU speed vs. graphics/sound hardware
  75.  * speed. If you set this to 1, you'll get maximum CPU speed, but demos and
  76.  * games will run very slowly. With large values, the CPU can't execute many
  77.  * instructions per frame, but for many demos, it doesn't have to. A good
  78.  * compromise is setting this to 4. Higher values may produce better sound
  79.  * output, but can make some programs crash because they don't get enough CPU
  80.  * time.
  81.  */
  82.  
  83. #if 0
  84. #define M68K_SPEED 4
  85. #endif
  86.  
  87. /*
  88.  * When USE_COMPILER is defined, a m68k->i386 instruction compiler will be
  89.  * used. This is experimental. It has only been tested on a Linux/i386 ELF
  90.  * machine, although it might work on other i386 Unices.
  91.  * This is supposed to speed up application programs. It will not work very
  92.  * well for hardware bangers like games and demos, in fact it will be much
  93.  * slower. It can also be slower for some applications and/or benchmarks.
  94.  * It needs a lot of tuning. Please let me know your results with this.
  95.  * The second define, RELY_ON_LOADSEG_DETECTION, decides how the compiler 
  96.  * tries to detect self-modifying code. If it is not set, the first bytes
  97.  * of every compiled routine are used as checksum before executing the
  98.  * routine. If it is set, the UAE filesystem will perform some checks to 
  99.  * detect whether an executable is being loaded. This is less reliable
  100.  * (it won't work if you don't use the harddisk emulation, so don't try to
  101.  * use floppies or even the RAM disk), but much faster.
  102. #define USE_COMPILER
  103. #define RELY_ON_LOADSEG_DETECTION
  104.  */
  105.  
  106. /*
  107.  * Set USER_PROGRAMS_BEHAVE to 1 or 2 to indicate that you are only running
  108.  * non-hardware banging programs which leave all the dirty work to the
  109.  * Kickstart. This affects the compiler, and on Linux systems it also
  110.  * affects the normal CPU emulation. Any program that is _not_ in the ROM
  111.  * (i.e. everything but the Kickstart) will use faster memory access 
  112.  * functions.
  113.  * There is of course the problem that the Amiga doesn't really distinguish
  114.  * between user programs and the kernel. Not all of the OS is in the ROM,
  115.  * e.g. the parallel.device is on the disk and gets loaded into RAM at least
  116.  * with Kickstart 1.3 (don't know about newer Kickstarts). So you probably
  117.  * can't print, and some other stuff may also fail to work.
  118.  * A useless option, really, given the way lots of Amiga software is written.
  119. #define USER_PROGRAMS_BEHAVE 0
  120.  */
  121.  
  122. /***************************************************************************
  123.  * Operating system/machine specific options
  124.  */
  125.  
  126. /*
  127.  * This option enables a different planar->chunky conversion routine. It may
  128.  * work slightly faster on some machines, it will work a lot slower on others,
  129.  * and it will crash most RISC machines.
  130.  * It seems to be a win on the Pentium. No idea about other x86's.
  131. #define UNALIGNED_PROFITABLE
  132. */
  133.  
  134. /*
  135.  * Define this option if you have a very fast Pentium or another x86 CPU that
  136.  * understands the RDTSC instruction. When enabled, it will make sure that the
  137.  * frame rate does not exceed 50Hz. This will give slightly more speed to the
  138.  * CPU emulation. On slow systems (say, worse than a P166), you don't have to
  139.  * worry about the frame rate being too high anyway unless you run only boring
  140.  * WB-based stuff.
  141. #define HAVE_RDTSC
  142.  */
  143.  
  144. /***************************************************************************
  145.  * Support for broken software. These options are set to default values
  146.  * that are reasonable for most uses. You should not need to change these.
  147.  */
  148.  
  149. /*
  150.  * Unfortunately, there are people who think it's way k00l to play stupid
  151.  * tricks with the MC68000, the CPU of the Amiga. Enable this option to
  152.  * emulate the prefetch buffer. You don't have to know what a prefetch buffer
  153.  * is, you should know however that it's needed for better compatibility and
  154.  * that emulating it makes the emulator somewhat slower.
  155.  */
  156. #define NO_PREFETCH_BUFFER
  157.  
  158. /*
  159.  * Some STUPID programs access a longword at an odd address and expect to
  160.  * end up at the routine given in the vector for exception 3.
  161.  * (For example, Katakis does this). And yes, I know it's legal, but it's dumb
  162.  * anyway.
  163.  * If you leave this commented in, memory accesses will be faster,
  164.  * but some programs may fail for an obscure reason.
  165.  */
  166. #define NO_EXCEPTION_3
  167.  
  168. /*
  169.  * If you want to see the "Hardwired" demo, you need to define this.
  170.  * Otherwise, it will say "This demo don't like Axel" - apparently, Axel
  171.  * has a 68040.
  172.  * NEWS FLASH! My sources tell me that "Axel" stands for accelerator. Not
  173.  * that it really matters...
  174. #define WANT_SLOW_MULTIPLY
  175.  */
  176.  
  177. /*
  178.  * This variable was introduced because a program could do a Bcc from
  179.  * whithin chip memory to a location whitin expansion memory. With a
  180.  * pointer variable the program counter would point to the wrong location.
  181.  * With this variable unset the program counter is always correct, but
  182.  * programs will run slower (about 4%).
  183.  * Usually, you'll want to have this defined.
  184.  * @@@ Does anyone know a program that doesn't work with this? I'd like
  185.  * to remove this option.
  186.  */
  187. #define USE_POINTER
  188.